#ifndef MINI_ENGINE_DRAWFRAME
#define MINI_ENGINE_DRAWFRAME

#include <vulkan/vulkan.h>
#include <glm/glm.hpp>
#include "LogicalDevice.h"
#include "SyncObjects.h"
#include "SwapChain.h"
#include "Command.h"
#include "RenderPass.h"
#include "Framebuffers.h"
#include "GraphicsPipeline.h"
#include "Application.h"
#include "Model.h"

namespace mini_engine
{
    class DrawFrame
    {
    private:
        DrawFrame();
        static DrawFrame *m_drawframe;
        static void recordCommandBuffer(VkCommandBuffer commandBuffer, uint32_t imageIndex);
        class DrawFrameDestruction
        {
        public:
            ~DrawFrameDestruction();
        };

    public:
        static DrawFrame *getDrawFrame();
        static void drawFrame();
        ~DrawFrame();
    };
}

#endif